10 REM STUDENT QUIZ GENERATOR 20 PRINT"[147]":CLR:POKE53280,16:POKE53281,16:POKE808,225:POKE649,0:S=54727 30 DIMQ$(100),A$(100),B$(100),C$(100),D$(100),E$(100),M$(15),A(100) 40 GOSUB840:PRINT"[147]":PRINTSPC(12)" [204][207][193][196][201][206][199][160][196][193][212][193][160][160][160]":PRINT"[144]":GOSUB390:PRINT"" 50 FORX=1TOA:PRINTX". "M$(X):NEXT 60 PRINT"[197]NTER NUMBER OF TEST":POKE649,10:INPUTX 70 IFX<1ORX>ATHENPRINT"INVALID RANGE":GOTO60 80 N$=M$(X):POKE649,0:OPEN15,8,15:PRINT"[147]":OPEN2,8,2,+N$+" FILE,S,R" 90 PRINT" [204][207][193][196][201][206][199][160]";N$;" [209][213][201][218]":PRINT"[144]" 100 X=0 110 X=X+1 120 INPUT#2,Q$(X):INPUT#2,A$(X):INPUT#2,B$(X):INPUT#2,C$(X):INPUT#2,D$(X):INPUT#2,E$(X) 130 IFST AND64THEN150 140 GOTO110 150 CLOSE2:POKE198,0:L=X:CLOSE15:GOSUB920:PRINT"[147]" 160 REM TEST ROUTINE 170 Y=1:POKE649,10:GOSUB540 180 FORN=1TOL-1:PRINT"[147]":PRINTTAB(20-LEN(N$)/2);N$ 190 S$=STR$(N)+". "+Q$(A(N)):PRINT:GOSUB450 200 REM ANSWER CHOICES 210 S$=A$(A(N)):GOSUB450:S$=B$(A(N)):GOSUB450:S$=C$(A(N)):GOSUB450 220 S$=D$(A(N)):GOSUB450:S$=E$(A(N)) 230 PRINT"[197]NTER LETTER OF MOST CORRECT ANSWER:":POKE198,0 240 INPUTF$ 250 IFLEN(F$)<>1THENPRINT"[197]NTER ONE LETTER ONLY":GOTO240 260 IFASC(F$)<65ORASC(F$)>68THENPRINT"[193]NSWER MUST BE [193],[194],[195], OR [196]":GOTO240 270 IFASC(F$)=ASC(S$)THENP=P+1 280 IFASC(F$)=ASC(S$)THENPRINTSPC(9)" [193]NSWER IS CORRECT!! ":GOSUB1030 290 IFASC(F$)<>ASC(S$)THEN:GOSUB1060:GOSUB820 300 FORT=1TO4000:NEXT:NEXT 310 N=N-1 320 S=INT(P/N*100+.5):PRINT"[147][217]OU SCORED ";S;" %" 330 IFS>80ANDS<90THENPRINT"[211]TUDY THIS SECTION AGAIN" 340 IFS>90ANDS<100THENPRINT"[214]ERY GOOD, BUT MORE STUDY WOULD HELP" 350 IFS=100THENPRINT"[197]XCELLENT!! [208]ERFECT SCORE!!" 360 FORT=1TO3000:NEXT 370 PRINT"[197]NTER [210][213][206] TO RE-START PROGRAM":POKE808,237:END 380 REM PRINT JUSTIFY 390 OPEN15,8,15:OPEN3,8,3,"TEST TITLES,S,R":PRINT"[144]" 400 X=X+1 410 INPUT#3,M$(X) 420 IFSTATUSAND64THEN440 430 GOTO400 440 CLOSE3:POKE198,0:A=X:CLOSE15:PRINT"[147]":RETURN 450 IFLEN(S$)<40THENPRINTS$:GOTO510 460 X=40:Y=1 470 X=X-1 480 IFASC(MID$(S$,X,Y)+CHR$(0))<>32THEN470 490 PRINTLEFT$(S$,X) 500 Z=LEN(S$):Z=Z-X:PRINTRIGHT$(S$,Z) 510 RETURN 520 PRINT:PRINTSPC(14)"TEST TITLES":PRINT:FORA=1TOX:PRINTA;". ";M$(A):NEXT:RETURN 530 REM DISABLE CURSOR CONTROLS 540 IFPEEK(830)=133THEN560 550 FORI=828TO977:READA:POKEI,A:NEXT 560 SYS828:RETURN 570 DATA169,000,133,252,169,080 580 DATA133,251,169,164,133,002 590 DATA169,083,141,036,003,169 600 DATA003,141,037,003,096,152 610 DATA072,138,072,165,252,208 620 DATA007,032,116,003,169,000 630 DATA133,253,166,253,189,000 640 DATA002,133,254,198,252,230 650 DATA253,104,170,104,168,165 660 DATA254,096,160,000,132,252 670 DATA165,002,032,210,255,169 680 DATA157,032,210,255,032,228 690 DATA255,240,251,164,252,133 700 DATA254,169,032,032,210,255 710 DATA169,157,032,210,255,165 720 DATA254,201,013,240,043,201 730 DATA020,208,013,192,000,240 740 DATA211,136,169,157,032,210 750 DATA255,076,118,003,041,127 760 DATA201,032,144,196,196,251 770 DATA240,192,165,254,153,000 780 DATA002,032,210,255,169,000 790 DATA133,212,200,076,118,003 800 DATA230,252,153,000,002,169 810 DATA032,032,210,255,096,013 820 PRINTSPC(10)" [211]ORRY ANSWER IS WRONG " 830 PRINT"[195]ORRECT CHOICE IS: ";S$:RETURN 840 PRINT"[147]":PRINTSPC(13)" [209]UIZ [205]ASTER ":POKE53272,23 850 PRINT" [212]HESE TESTS ARE MULTIPLE CHOICE." 860 PRINT"[197]NTER THE BEST ANSWER FROM THE CHOICES" 870 PRINT"GIVEN." 880 PRINT" [197]NTER THE NUMBER OF THE TEST YOU " 890 PRINT"HAVE BEEN ASSIGNED WHEN THE PROGRAM " 900 PRINT"CALLS FOR IT." 910 FORT=1TO6000:NEXT:RETURN 920 REM RANDOM GEN. 930 PRINT"[147][215][193][201][212]-- [208]REPARING [209]UIZ":PRINT"[144]" 940 FORX=1TOL 950 A(X)=INT(RND(.)*L)+1 960 IFX=1THEN1000 970 FORY=1TOX-1 980 IFA(Y)=A(X)THEN950 990 NEXTY 1000 NEXTX 1010 PRINT"":RETURN 1020 REM CORRECT ANSWER SOUND 1030 S=54272:POKES,150:POKES+1,100:POKES+5,0:POKES+6,240:POKES+24,15:POKES+4,17 1040 FORT=0TO200:NEXT:POKES+4,0:RETURN 1050 REM WRONG ANSWER SOUND 1060 S=54272:POKES,150:POKES+1,5:POKES+5,0:POKES+6,240:POKES+24,15:POKES+4,17 1070 FORT=0TO200:NEXT:POKES+4,0:RETURN